/*
 * ConsualtarEventos.java
 *
 * Created on 22/11/2008, 06:24:13 PM
 */
package investigaciones_itm.Productos;

import com.sun.rave.faces.data.DefaultSelectItemsArray;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.component.Body;
import com.sun.webui.jsf.component.Button;
import com.sun.webui.jsf.component.Calendar;
import com.sun.webui.jsf.component.Form;
import com.sun.webui.jsf.component.Head;
import com.sun.webui.jsf.component.Html;
import com.sun.webui.jsf.component.Label;
import com.sun.webui.jsf.component.Link;
import com.sun.webui.jsf.component.Page;
import com.sun.webui.jsf.component.PanelGroup;
import com.sun.webui.jsf.component.PanelLayout;
import com.sun.webui.jsf.component.RadioButtonGroup;
import com.sun.webui.jsf.component.Tab;
import com.sun.webui.jsf.component.TabSet;
import com.sun.webui.jsf.component.TextArea;
import com.sun.webui.jsf.component.TextField;
import com.sun.webui.jsf.model.Option;
import com.sun.webui.jsf.model.SingleSelectOptionsList;
import javax.faces.FacesException;
import investigaciones_itm.SessionBean1;
import investigaciones_itm.ApplicationBean1;
import investigaciones_itm.RequestBean1;
import javax.faces.component.UIComponent;
import javax.faces.component.html.HtmlInputHidden;
import javax.faces.component.html.HtmlMessages;
import javax.faces.component.html.HtmlSelectOneListbox;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import itm.vo.prodructos.ProductosEventoVO;
import itm.bo.productos.ProductosBO;
import itm.vo.administracion.TipoEventosVO;
import itm.vo.grupoInvestigacion.CiudadVO;
import itm.vo.grupoInvestigacion.EventoVO;
import itm.vo.grupoInvestigacion.PaisVO;
import itm.vo.personas.PersonaVO;
import itm.vo.prodructos.ProductoVO;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
import javax.faces.component.UISelectItems;
import javax.faces.model.SelectItem;

/**
 * <p>Page bean that corresponds to a similarly named JSP page.  This
 * class contains component definitions (and initialization code) for
 * all components that you have defined on this page, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 *
 * @author BISA20
 */
public class ConsultarEventos extends AbstractPageBean {

    ProductosEventoVO productosEventoVO = new ProductosEventoVO();
    ProductosBO productosBO = new ProductosBO();

    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
        radioButtonGroup1DefaultOptions.setOptions(new com.sun.webui.jsf.model.Option[]{new com.sun.webui.jsf.model.Option("SI", "SI"), new com.sun.webui.jsf.model.Option("NO", "NO")});
    }
    private Page page1 = new Page();

    public Page getPage1() {
        return page1;
    }

    public void setPage1(Page p) {
        this.page1 = p;
    }
    private Html html1 = new Html();

    public Html getHtml1() {
        return html1;
    }

    public void setHtml1(Html h) {
        this.html1 = h;
    }
    private Head head1 = new Head();

    public Head getHead1() {
        return head1;
    }

    public void setHead1(Head h) {
        this.head1 = h;
    }
    private Link link1 = new Link();

    public Link getLink1() {
        return link1;
    }

    public void setLink1(Link l) {
        this.link1 = l;
    }
    private Body body1 = new Body();

    public Body getBody1() {
        return body1;
    }

    public void setBody1(Body b) {
        this.body1 = b;
    }
    private Form form1 = new Form();

    public Form getForm1() {
        return form1;
    }

    public void setForm1(Form f) {
        this.form1 = f;
    }
    private PanelGroup groupPanel1 = new PanelGroup();

    public PanelGroup getGroupPanel1() {
        return groupPanel1;
    }

    public void setGroupPanel1(PanelGroup pg) {
        this.groupPanel1 = pg;
    }
    private TabSet tabSet1 = new TabSet();

    public TabSet getTabSet1() {
        return tabSet1;
    }

    public void setTabSet1(TabSet ts) {
        this.tabSet1 = ts;
    }
    private Tab tab1 = new Tab();

    public Tab getTab1() {
        return tab1;
    }

    public void setTab1(Tab t) {
        this.tab1 = t;
    }
    private PanelLayout layoutPanel1 = new PanelLayout();

    public PanelLayout getLayoutPanel1() {
        return layoutPanel1;
    }

    public void setLayoutPanel1(PanelLayout pl) {
        this.layoutPanel1 = pl;
    }
    private Tab tab2 = new Tab();

    public Tab getTab2() {
        return tab2;
    }

    public void setTab2(Tab t) {
        this.tab2 = t;
    }
    private PanelLayout layoutPanel2 = new PanelLayout();

    public PanelLayout getLayoutPanel2() {
        return layoutPanel2;
    }

    public void setLayoutPanel2(PanelLayout pl) {
        this.layoutPanel2 = pl;
    }
    private TextField textFiOrganizador = new TextField();

    public TextField getTextFiOrganizador() {
        return textFiOrganizador;
    }

    public void setTextFiOrganizador(TextField tf) {
        this.textFiOrganizador = tf;
    }
    private Label label1 = new Label();

    public Label getLabel1() {
        return label1;
    }

    public void setLabel1(Label l) {
        this.label1 = l;
    }
    private TextArea textAreDescriEvento = new TextArea();

    public TextArea getTextAreDescriEvento() {
        return textAreDescriEvento;
    }

    public void setTextAreDescriEvento(TextArea ta) {
        this.textAreDescriEvento = ta;
    }
    private Label label2 = new Label();

    public Label getLabel2() {
        return label2;
    }

    public void setLabel2(Label l) {
        this.label2 = l;
    }
    private TextField textFieldCostoAsociado = new TextField();

    public TextField getTextFieldCostoAsociado() {
        return textFieldCostoAsociado;
    }

    public void setTextFieldCostoAsociado(TextField tf) {
        this.textFieldCostoAsociado = tf;
    }
    private TextArea textAreaResultadoObte = new TextArea();

    public TextArea getTextAreaResultadoObte() {
        return textAreaResultadoObte;
    }

    public void setTextAreaResultadoObte(TextArea ta) {
        this.textAreaResultadoObte = ta;
    }
    private Label label3 = new Label();

    public Label getLabel3() {
        return label3;
    }

    public void setLabel3(Label l) {
        this.label3 = l;
    }
    private TextField textFieldAsumeCosto = new TextField();

    public TextField getTextFieldAsumeCosto() {
        return textFieldAsumeCosto;
    }

    public void setTextFieldAsumeCosto(TextField tf) {
        this.textFieldAsumeCosto = tf;
    }
    private Label label4 = new Label();

    public Label getLabel4() {
        return label4;
    }

    public void setLabel4(Label l) {
        this.label4 = l;
    }
    private Label label5 = new Label();

    public Label getLabel5() {
        return label5;
    }

    public void setLabel5(Label l) {
        this.label5 = l;
    }
    private Label label6 = new Label();

    public Label getLabel6() {
        return label6;
    }

    public void setLabel6(Label l) {
        this.label6 = l;
    }
    private TextArea textAreaDetalleCosto = new TextArea();

    public TextArea getTextAreaDetalleCosto() {
        return textAreaDetalleCosto;
    }

    public void setTextAreaDetalleCosto(TextArea ta) {
        this.textAreaDetalleCosto = ta;
    }
    private Label label7 = new Label();

    public Label getLabel7() {
        return label7;
    }

    public void setLabel7(Label l) {
        this.label7 = l;
    }
    private Label label8 = new Label();

    public Label getLabel8() {
        return label8;
    }

    public void setLabel8(Label l) {
        this.label8 = l;
    }
    private Label label9 = new Label();

    public Label getLabel9() {
        return label9;
    }

    public void setLabel9(Label l) {
        this.label9 = l;
    }
    private Label label10 = new Label();

    public Label getLabel10() {
        return label10;
    }

    public void setLabel10(Label l) {
        this.label10 = l;
    }
    private Label label11 = new Label();

    public Label getLabel11() {
        return label11;
    }

    public void setLabel11(Label l) {
        this.label11 = l;
    }
    private TextField textFieldDuracion = new TextField();

    public TextField getTextFieldDuracion() {
        return textFieldDuracion;
    }

    public void setTextFieldDuracion(TextField tf) {
        this.textFieldDuracion = tf;
    }
    private TextArea textAreaImportanciaItm = new TextArea();

    public TextArea getTextAreaImportanciaItm() {
        return textAreaImportanciaItm;
    }

    public void setTextAreaImportanciaItm(TextArea ta) {
        this.textAreaImportanciaItm = ta;
    }
    private Label label12 = new Label();

    public Label getLabel12() {
        return label12;
    }

    public void setLabel12(Label l) {
        this.label12 = l;
    }
    private Label label13 = new Label();

    public Label getLabel13() {
        return label13;
    }

    public void setLabel13(Label l) {
        this.label13 = l;
    }
    private TextArea textNombreEvento = new TextArea();

    public TextArea getTextNombreEvento() {
        return textNombreEvento;
    }

    public void setTextNombreEvento(TextArea ta) {
        this.textNombreEvento = ta;
    }
    private Label label14 = new Label();

    public Label getLabel14() {
        return label14;
    }

    public void setLabel14(Label l) {
        this.label14 = l;
    }
    private Label label16 = new Label();

    public Label getLabel16() {
        return label16;
    }

    public void setLabel16(Label l) {
        this.label16 = l;
    }
    private TextField textFieldEnProceso = new TextField();

    public TextField getTextFieldEnProceso() {
        return textFieldEnProceso;
    }

    public void setTextFieldEnProceso(TextField tf) {
        this.textFieldEnProceso = tf;
    }
    private TextField textFieldFechaFin = new TextField();

    public TextField getTextFieldFechaFin() {
        return textFieldFechaFin;
    }

    public void setTextFieldFechaFin(TextField tf) {
        this.textFieldFechaFin = tf;
    }
    private TextField textFieldFechaInicio = new TextField();

    public TextField getTextFieldFechaInicio() {
        return textFieldFechaInicio;
    }

    public void setTextFieldFechaInicio(TextField tf) {
        this.textFieldFechaInicio = tf;
    }
    private TextField textFieldCiudad = new TextField();

    public TextField getTextFieldCiudad() {
        return textFieldCiudad;
    }

    public void setTextFieldCiudad(TextField tf) {
        this.textFieldCiudad = tf;
    }
    private TextField textFieldPais = new TextField();

    public TextField getTextFieldPais() {
        return textFieldPais;
    }

    public void setTextFieldPais(TextField tf) {
        this.textFieldPais = tf;
    }
    private TextField textFieldTipoEvento = new TextField();

    public TextField getTextFieldTipoEvento() {
        return textFieldTipoEvento;
    }

    public void setTextFieldTipoEvento(TextField tf) {
        this.textFieldTipoEvento = tf;
    }
    private DefaultSelectItemsArray listbox1DefaultItems = new DefaultSelectItemsArray();

    public DefaultSelectItemsArray getListbox1DefaultItems() {
        return listbox1DefaultItems;
    }

    public void setListbox1DefaultItems(DefaultSelectItemsArray dsia) {
        this.listbox1DefaultItems = dsia;
    }
    private Label label17 = new Label();

    public Label getLabel17() {
        return label17;
    }

    public void setLabel17(Label l) {
        this.label17 = l;
    }
    private Label label18 = new Label();

    public Label getLabel18() {
        return label18;
    }

    public void setLabel18(Label l) {
        this.label18 = l;
    }
    private Label label19 = new Label();

    public Label getLabel19() {
        return label19;
    }

    public void setLabel19(Label l) {
        this.label19 = l;
    }
    private Label label20 = new Label();

    public Label getLabel20() {
        return label20;
    }

    public void setLabel20(Label l) {
        this.label20 = l;
    }
    private Label label21 = new Label();

    public Label getLabel21() {
        return label21;
    }

    public void setLabel21(Label l) {
        this.label21 = l;
    }
    private Label label22 = new Label();

    public Label getLabel22() {
        return label22;
    }

    public void setLabel22(Label l) {
        this.label22 = l;
    }
    private TextField textFieldCostoAsociado1 = new TextField();

    public TextField getTextFieldCostoAsociado1() {
        return textFieldCostoAsociado1;
    }

    public void setTextFieldCostoAsociado1(TextField tf) {
        this.textFieldCostoAsociado1 = tf;
    }
    private TextArea textNombreEvento1 = new TextArea();

    public TextArea getTextNombreEvento1() {
        return textNombreEvento1;
    }

    public void setTextNombreEvento1(TextArea ta) {
        this.textNombreEvento1 = ta;
    }
    private TextArea textAreDescriEvento1 = new TextArea();

    public TextArea getTextAreDescriEvento1() {
        return textAreDescriEvento1;
    }

    public void setTextAreDescriEvento1(TextArea ta) {
        this.textAreDescriEvento1 = ta;
    }
    private Label label23 = new Label();

    public Label getLabel23() {
        return label23;
    }

    public void setLabel23(Label l) {
        this.label23 = l;
    }
    private Label label24 = new Label();

    public Label getLabel24() {
        return label24;
    }

    public void setLabel24(Label l) {
        this.label24 = l;
    }
    private HtmlSelectOneListbox listboxCiudad1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxCiudad1() {
        return listboxCiudad1;
    }

    public void setListboxCiudad1(HtmlSelectOneListbox hsol) {
        this.listboxCiudad1 = hsol;
    }
    private Label label25 = new Label();

    public Label getLabel25() {
        return label25;
    }

    public void setLabel25(Label l) {
        this.label25 = l;
    }
    private TextArea textAreaResultadoObte1 = new TextArea();

    public TextArea getTextAreaResultadoObte1() {
        return textAreaResultadoObte1;
    }

    public void setTextAreaResultadoObte1(TextArea ta) {
        this.textAreaResultadoObte1 = ta;
    }
    private HtmlSelectOneListbox listboxTiempo1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxTiempo1() {

        listboxTiempo1 = new HtmlSelectOneListbox();

        List collection = new ArrayList();

        collection.add(new SelectItem("Horas", "Horas"));
        collection.add(new SelectItem("Días", "Días"));
        collection.add(new SelectItem("Semanas", "Semanas"));
        UISelectItems listaMenu = new UISelectItems();
        listaMenu.setValue(collection);
        listboxTiempo1.getChildren().add(listaMenu);



        return listboxTiempo1;
    }

    public void setListboxTiempo1(HtmlSelectOneListbox hsol) {
        this.listboxTiempo1 = hsol;
    }
    private Label label26 = new Label();

    public Label getLabel26() {
        return label26;
    }

    public void setLabel26(Label l) {
        this.label26 = l;
    }
    private HtmlSelectOneListbox listboxPais1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxPais1() {

        listboxPais1 = new HtmlSelectOneListbox();

        int idPais;
        String nombrePais;

        ProductosBO productosBO = new ProductosBO();
        List<PaisVO> listaPais = new ArrayList<PaisVO>();
        List collection = new ArrayList();
        try {
            listaPais = productosBO.ListarPais();
            collection.add(new SelectItem(0, "-Seleccione un País-"));
            for (int i = 0; i < listaPais.size(); i++) {
                idPais = listaPais.get(i).getIdPais();
                nombrePais = listaPais.get(i).getPais();

                collection.add(new SelectItem(idPais, nombrePais));
            } // end for
            UISelectItems listaMenu = new UISelectItems();
            listaMenu.setValue(collection);
            listboxPais1.getChildren().add(listaMenu);
        } catch (Exception e) {
            e.getStackTrace();
        }

        return listboxPais1;
    }

    public void setListboxPais1(HtmlSelectOneListbox hsol) {
        this.listboxPais1 = hsol;
    }
    private Calendar calendarFinEvento1 = new Calendar();

    public Calendar getCalendarFinEvento1() {
        return calendarFinEvento1;
    }

    public void setCalendarFinEvento1(Calendar c) {
        this.calendarFinEvento1 = c;
    }
    private HtmlSelectOneListbox listboxTipoEvento1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxTipoEvento1() {


        listboxTipoEvento1 = new HtmlSelectOneListbox();

        String idTipoEvento;
        String nombreTipoEvento;

        ProductosBO productosBO = new ProductosBO();
        List<TipoEventosVO> listaTipoEvento = new ArrayList<TipoEventosVO>();
        List collection = new ArrayList();
        try {
            listaTipoEvento = productosBO.listarTipoEventos();
            collection.add(new SelectItem(0, "-Seleccione un tipo de Evento-"));
            for (int i = 0; i < listaTipoEvento.size(); i++) {
                idTipoEvento = listaTipoEvento.get(i).getIdTipoEvento();
                nombreTipoEvento = listaTipoEvento.get(i).getNombreTipoEvento();

                collection.add(new SelectItem(idTipoEvento, nombreTipoEvento));
            } // end for
            UISelectItems listaMenu = new UISelectItems();
            listaMenu.setValue(collection);
            listboxTipoEvento1.getChildren().add(listaMenu);
        } catch (Exception e) {
            e.getStackTrace();
        }


        return listboxTipoEvento1;
    }

    public void setListboxTipoEvento1(HtmlSelectOneListbox hsol) {
        this.listboxTipoEvento1 = hsol;
    }
    private TextField textFieldDuracion1 = new TextField();

    public TextField getTextFieldDuracion1() {
        return textFieldDuracion1;
    }

    public void setTextFieldDuracion1(TextField tf) {
        this.textFieldDuracion1 = tf;
    }
    private Label label28 = new Label();

    public Label getLabel28() {
        return label28;
    }

    public void setLabel28(Label l) {
        this.label28 = l;
    }
    private TextField textFieldAsumeCosto1 = new TextField();

    public TextField getTextFieldAsumeCosto1() {
        return textFieldAsumeCosto1;
    }

    public void setTextFieldAsumeCosto1(TextField tf) {
        this.textFieldAsumeCosto1 = tf;
    }
    private Label label29 = new Label();

    public Label getLabel29() {
        return label29;
    }

    public void setLabel29(Label l) {
        this.label29 = l;
    }
    private Calendar calendarInicio1 = new Calendar();

    public Calendar getCalendarInicio1() {
        return calendarInicio1;
    }

    public void setCalendarInicio1(Calendar c) {
        this.calendarInicio1 = c;
    }
    private TextField textFiOrganizador1 = new TextField();

    public TextField getTextFiOrganizador1() {
        return textFiOrganizador1;
    }

    public void setTextFiOrganizador1(TextField tf) {
        this.textFiOrganizador1 = tf;
    }
    private Option[] availableOptions = null;
    /** Holds value of property selectedOptions. */
    private String[] selectedOptions = null;

    public Option[] getAvailableOptions() {
        return availableOptions;
    }

    public void setAvailableOptions(Option[] availableOptions) {
        this.availableOptions = availableOptions;
    }

    public String[] getSelectedOptions() {
        return selectedOptions;
    }

    public void setSelectedOptions(String[] selectedOptions) {
        this.selectedOptions = selectedOptions;
    }
    private Label label30 = new Label();

    public Label getLabel30() {
        return label30;
    }

    public void setLabel30(Label l) {
        this.label30 = l;
    }
    private Label label31 = new Label();

    public Label getLabel31() {
        return label31;
    }

    public void setLabel31(Label l) {
        this.label31 = l;
    }
    private Label label32 = new Label();

    public Label getLabel32() {
        return label32;
    }

    public void setLabel32(Label l) {
        this.label32 = l;
    }
    private RadioButtonGroup radioButtonGroup1 = new RadioButtonGroup();

    public RadioButtonGroup getRadioButtonGroup1() {
        return radioButtonGroup1;
    }

    public void setRadioButtonGroup1(RadioButtonGroup rbg) {
        this.radioButtonGroup1 = rbg;
    }
    private SingleSelectOptionsList radioButtonGroup1DefaultOptions = new SingleSelectOptionsList();

    public SingleSelectOptionsList getRadioButtonGroup1DefaultOptions() {
        return radioButtonGroup1DefaultOptions;
    }

    public void setRadioButtonGroup1DefaultOptions(SingleSelectOptionsList ssol) {
        this.radioButtonGroup1DefaultOptions = ssol;
    }
    private TextArea textAreaDetalleCosto1 = new TextArea();

    public TextArea getTextAreaDetalleCosto1() {
        return textAreaDetalleCosto1;
    }

    public void setTextAreaDetalleCosto1(TextArea ta) {
        this.textAreaDetalleCosto1 = ta;
    }
    private TextArea textAreaImportanciaItm1 = new TextArea();

    public TextArea getTextAreaImportanciaItm1() {
        return textAreaImportanciaItm1;
    }

    public void setTextAreaImportanciaItm1(TextArea ta) {
        this.textAreaImportanciaItm1 = ta;
    }
    private Button buttonGuardarModi = new Button();

    public Button getButtonGuardarModi() {
        return buttonGuardarModi;
    }

    public void setButtonGuardarModi(Button b) {
        this.buttonGuardarModi = b;
    }
    private Button buttonCancelar = new Button();

    public Button getButtonCancelar() {
        return buttonCancelar;
    }

    public void setButtonCancelar(Button b) {
        this.buttonCancelar = b;
    }
    private HtmlMessages messageList1 = new HtmlMessages();

    public HtmlMessages getMessageList1() {
        return messageList1;
    }

    public void setMessageList1(HtmlMessages hm) {
        this.messageList1 = hm;
    }
    private HtmlInputHidden hiddenFieldidEvento = new HtmlInputHidden();

    public HtmlInputHidden getHiddenFieldidEvento() {
        return hiddenFieldidEvento;
    }

    public void setHiddenFieldidEvento(HtmlInputHidden hih) {
        this.hiddenFieldidEvento = hih;
    }

    // </editor-fold>
    /**
     * <p>Construct a new Page bean instance.</p>
     */
    public ConsultarEventos() throws Exception {

        String idEvento = "";

        productosEventoVO = getRequestBean1().getProductosEventoVO();
        hiddenFieldidEvento.setValue(productosEventoVO.getIdEvento());
        consultarEventoEspecifico(productosEventoVO);
        consultarResponsable(productosEventoVO);

    //  consultarIndicadorProducto(indicadoresVO);

    }

    /**
     * <p>Callback method that is called whenever a page is navigated to,
     * either directly via a URL, or indirectly via page navigation.
     * Customize this method to acquire resources that will be needed
     * for event handlers and lifecycle methods, whether or not this
     * page is performing post back processing.</p>
     * 
     * <p>Note that, if the current request is a postback, the property
     * values of the components do <strong>not</strong> represent any
     * values submitted with this request.  Instead, they represent the
     * property values that were saved for this view when it was rendered.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();
        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here

        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("ConsualtarEventos Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }

    // </editor-fold>
    // Perform application initialization that must complete
    // *after* managed components are initialized
    // TODO - add your own initialization code here
    }

    /**
     * <p>Callback method that is called after the component tree has been
     * restored, but before any event processing takes place.  This method
     * will <strong>only</strong> be called on a postback request that
     * is processing a form submit.  Customize this method to allocate
     * resources that will be required in your event handlers.</p>
     */
    @Override
    public void preprocess() {
    }

    /**
     * <p>Callback method that is called just before rendering takes place.
     * This method will <strong>only</strong> be called for the page that
     * will actually be rendered (and not, for example, on a page that
     * handled a postback and then navigated to a different page).  Customize
     * this method to allocate resources that will be required for rendering
     * this page.</p>
     */
    @Override
    public void prerender() {

        PersonaVO personaVO = getRequestBean1().getPersonaVO();
        String idPersona = "";
        String nombrePersona = "";
        ProductosBO productosBO = new ProductosBO();
        List<PersonaVO> listaPersonas = new ArrayList<PersonaVO>();
        try {
            listaPersonas = productosBO.listarPersona(personaVO);
            Option[] opcion = new Option[listaPersonas.size()];
            for (int i = 0; i < listaPersonas.size(); i++) {
                idPersona = listaPersonas.get(i).getIdPersona();
                nombrePersona = listaPersonas.get(i).getNombrePersona();
                opcion[i] = new Option(idPersona, nombrePersona);
            } // end for
            availableOptions = opcion;
        } catch (Exception e) {
            e.getStackTrace();
        }
    }

    /**
     * <p>Callback method that is called after rendering is completed for
     * this request, if <code>init()</code> was called (regardless of whether
     * or not this was the page that was actually rendered).  Customize this
     * method to release resources acquired in the <code>init()</code>,
     * <code>preprocess()</code>, or <code>prerender()</code> methods (or
     * acquired during execution of an event handler).</p>
     */
    @Override
    public void destroy() {
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected SessionBean1 getSessionBean1() {
        return (SessionBean1) getBean("SessionBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected RequestBean1 getRequestBean1() {
        return (RequestBean1) getBean("RequestBean1");
    }

    public void consultarEventoEspecifico(ProductosEventoVO productosEventoVO) throws Exception {

        try {

            productosBO = new ProductosBO();

            productosBO.consultarEventoEspecifico(productosEventoVO);

            String tipoEvento = productosEventoVO.getTipoEvento();
            String nombreEvento = productosEventoVO.getNombreEvento();

            String descripcion = productosEventoVO.getDescripcion();
            String organizador = productosEventoVO.getOrganizador();
            String nombrePais = productosEventoVO.getNombrePais();
            String nombreCiudad = productosEventoVO.getNombreCiudad();
            String fechaInicio = productosEventoVO.getFechaInicio();
            String fechaFin = productosEventoVO.getFechaFin();
            String duracion = productosEventoVO.getDuracion();
            String importanciaItm = productosEventoVO.getImportanciaItm();
            String detalleCosto = productosEventoVO.getDetalleCosto();
            String asumeCosto = productosEventoVO.getAsumeCosto();
            String costoAsociado = productosEventoVO.getCostoAsociado();
            String resultadoObtenido = productosEventoVO.getResultadoObtenido();
            String enProceso = productosEventoVO.getEnProceso();

            textFieldTipoEvento.setValue(tipoEvento);
            textNombreEvento.setValue(nombreEvento);
            textAreDescriEvento.setValue(descripcion);
            textFiOrganizador.setValue(organizador);
            textFieldPais.setValue(nombrePais);
            textFieldCiudad.setValue(nombreCiudad);
            textFieldFechaInicio.setValue(fechaInicio);
            textFieldFechaFin.setValue(fechaFin);
            textFieldDuracion.setValue(duracion);
            textAreaImportanciaItm.setValue(importanciaItm);
            textAreaDetalleCosto.setValue(detalleCosto);
            textFieldAsumeCosto.setValue(asumeCosto);
            textFieldCostoAsociado.setValue(costoAsociado);
            textAreaResultadoObte.setValue(resultadoObtenido);
            textFieldEnProceso.setValue(enProceso);

            listboxTipoEvento1.setValue(tipoEvento);
            textNombreEvento1.setValue(nombreEvento);
            textAreDescriEvento1.setValue(descripcion);
            textFiOrganizador1.setValue(organizador);
            if (enProceso.equals("NO")){
                radioButtonGroup1.setValue(false);
            } else {
                radioButtonGroup1.setValue(true);
            }
            listboxPais1.setValue(nombrePais);
            listboxCiudad1.setValue(nombreCiudad);
            //calendarInicio1.setValue(fechaInicio);
            //calendarFinEvento1.setValue(fechaFin);
            textFieldDuracion1.setValue(duracion);
            listboxTiempo1.setValue("");
            textFieldCostoAsociado1.setValue(costoAsociado);
            textAreaDetalleCosto1.setValue(detalleCosto);
            textFieldAsumeCosto1.setValue(asumeCosto);
            textAreaImportanciaItm1.setValue(importanciaItm);
            textAreaResultadoObte1.setValue(resultadoObtenido);
            
        } catch (Exception ce) {
            error("Error al consultar los datos del Evento");
            ce.getStackTrace();
        }
    }

    List<ProductosEventoVO> listaEvento = new ArrayList<ProductosEventoVO>();

    public void consultarResponsable(ProductosEventoVO productosEventoVO) throws Exception {

        String mostrar = "";

        try {

            productosBO = new ProductosBO();
            listaEvento = new ArrayList<ProductosEventoVO>();
            List collection = new ArrayList();

            listaEvento = productosBO.consultarResponsable(productosEventoVO);

            String resposable = productosEventoVO.getResponsable();

            for (int i = 0; i < listaEvento.size(); i++) {
                mostrar = listaEvento.get(i).getResponsable();
                collection.add(mostrar);
            }
        } catch (Exception ce) {
            error("Error al consultar los datos de la persona.");
            ce.getStackTrace();
        }
    }

    public String tab1_action() {
        tab2.setRendered(false);
        return null;
    }

    private static boolean esNumero(String cadena) {
        try {
            Integer.parseInt(cadena);
            return true;

        } catch (NumberFormatException nfe) {
            return false;
        }
    }

    public void textAreaDetalleCosto_processValueChange(ValueChangeEvent event) {
    }

    public void listboxPais_processValueChange(ValueChangeEvent vce) {
        String pais = (String) vce.getNewValue();
        ProductosBO productosBO;
        int idPais = Integer.parseInt(pais);
        int idCiudad = 0;

        String ciudad = "";
        PaisVO paisVO;
        List<CiudadVO> listaCiudades = new ArrayList<CiudadVO>();
        List collection = new ArrayList();
        UISelectItems listMenu = new UISelectItems();

        if (!getListboxCiudad1().getChildren().isEmpty()) {
            getListboxCiudad1().getChildren().clear();
        }

        try {
            paisVO = new PaisVO();
            productosBO = new ProductosBO();
            paisVO.setIdPais(idPais);
            listaCiudades = productosBO.listarCiudadesSegunPais(paisVO);
            collection.add(new SelectItem(0, "-Seleccione una Ciudad-"));
            for (int i = 0; i < listaCiudades.size(); i++) {
                idCiudad = listaCiudades.get(i).getIdCiudad();
                ciudad = listaCiudades.get(i).getCiudad();
                collection.add(new SelectItem(idCiudad, ciudad));
            }
            listMenu.setValue(collection);
            getListboxCiudad1().getChildren().add(listMenu);
        } catch (Exception e) {
            e.getStackTrace();
        }
    }

    public void listboxTipoEvento_processValueChange(ValueChangeEvent vce) {
    }

    public void textAreaResultadoObte1_processValueChange(ValueChangeEvent event) {
    }

    public void esNumero(FacesContext context, UIComponent component, Object value) {
    }
    String tipo = "", nombreEvento = "", DescripcionEvento = "", organizador = "", pai = "",
            ciu = "", Enproceso = "", Duracion = "", dura = "", costoAsoci = "", seleccion = "",
            detalleCosto = "", asumeCosto = "", importanciItm = "", resultaObteni = "";
    int tipoEvento = 0, pais = 0, ciudad = 0;
    Date fechaInicio = null, fechaFin = null;

    public String buttonGuardarModi_action() {

        String resultadoProducto = "", idEvento = "", resultado = "";
        int idProducto = 0, idEventoNuevo = 0;
        EventoVO eventoVO;
        ProductoVO productoVO;

        try {
            productosBO = new ProductosBO();
            eventoVO = new EventoVO();
            productoVO = new ProductoVO();

            idEvento = (String) hiddenFieldidEvento.getValue();
            idEventoNuevo = Integer.parseInt(idEvento);
            tipo = (String) listboxTipoEvento1.getValue();
            tipoEvento = Integer.parseInt(tipo);
            nombreEvento = (String) textNombreEvento.getValue();
            DescripcionEvento = (String) textAreDescriEvento.getValue();
            organizador = (String) textFiOrganizador.getValue();

            String[] personas = selectedOptions;
            pai = (String) listboxPais1.getValue();
            pais = Integer.parseInt(pai);
            ciu = (String) listboxCiudad1.getValue();
            ciudad = Integer.parseInt(ciu);

            java.util.Date fechaIni = (java.util.Date) calendarInicio1.getValue();
            java.util.Date fechaFi = (java.util.Date) calendarFinEvento1.getValue();

            //sql.date sql.Date fecha = (sql.Date) textFieldFecha.getValue();
            Duracion = (String) textFieldDuracion.getValue();
            dura = (String) listboxTiempo1.getValue();

            asumeCosto = (String) textFieldAsumeCosto.getValue();

            importanciItm = (String) textAreaImportanciaItm.getValue();
            detalleCosto = (String) textAreaDetalleCosto.getValue();

            seleccion = (String) radioButtonGroup1DefaultOptions.getSelectedValue();

            costoAsoci = (String) textFieldCostoAsociado.getValue();
            resultaObteni = (String) textAreaResultadoObte.getValue();

            if (tipoEvento == 0) {
                error("Por favor Seleccione el tipo del evento");
                return null;
            } else if (nombreEvento == null || nombreEvento.equals("")) {
                error("Por favor Digite el Nombre del evento");
                return null;
            } else if (DescripcionEvento == null || DescripcionEvento.equals("")) {
                error("Por favor Digite la descripcion del Evento");
                return null;
            } else if (organizador == null || organizador.equals("")) {
                error("Por favor Digite el nombre del Organizador");
                return null;
            } else if (pais == 0) {
                error("Por favor Seleccione un pais");
                return null;
            } else if (ciudad == 0) {
                error("Por favor Seleccione una Ciudad");
                return null;
            } else if (fechaIni == null) {
                error("Por favor Seleccione la fecha del Inicio del Evento");
                return null;
            } else if (fechaFi == null) {
                error("Por favor Seleccione la fecha en que finaliza la participacion del producto en el evento");
                return null;
            } else if (asumeCosto == null || asumeCosto.equals("")) {
                error("Por favor Digite quien asume el costo");
                return null;
            } else if (Duracion == null || Duracion.equals("")) {
                error("Por favor digite la duracion");
                return null;
            } else if (dura == null || dura.equals("")) {
                error("Por favor seleccione en como va a medir la duracion");
                return null;
            } else if (importanciItm == null || importanciItm.equals("")) {
                error("Por favor Digite la importancia para el Itm");
                return null;
            } else if (detalleCosto == null || detalleCosto.equals("")) {
                error("Por favor Digite el detalle del costo del evento");
                return null;
            } else if (seleccion.equals("") || seleccion == null) {
                error("Seleccione si se encuentra en proceso");
                return null;
            } else if (costoAsoci == null || costoAsoci.equals("") || esNumero(costoAsoci) == false) {
                error("digite un costo asociado");
                return null;
            }
            if (resultaObteni == null || resultaObteni.equals("")) {
                error("Digite el resultado obtenido");
                return null;
            }

            fechaInicio = new Date(fechaIni.getTime());
            fechaFin = new Date(fechaFi.getTime());
            eventoVO.setIdEvento(idEventoNuevo);
            eventoVO.setIdTipoEvento(tipoEvento);
            eventoVO.setNombreEvento(nombreEvento);
            eventoVO.setDescripcion(DescripcionEvento);
            eventoVO.setOrganizador(organizador);
            eventoVO.setIdPais(tipoEvento);
            eventoVO.setIdPais(pais);
            eventoVO.setIdCiudad(ciudad);
            eventoVO.setFechaInicio(fechaInicio);
            eventoVO.setFechaFin(fechaFin);
            eventoVO.setDuracion(Duracion + "" + dura);
            eventoVO.setImportanciaITM(importanciItm);
            eventoVO.setDetalleCosto(detalleCosto);
            eventoVO.setAsumeCosto(asumeCosto);

            productoVO.setCostoAsociado(costoAsoci);
            productoVO.setResultadoObtenido(resultaObteni);
            productoVO.setEnproceso(Enproceso);


            resultado = productosBO.modificarEventos(eventoVO, productoVO);
            info(resultado);
            //limpiar();
        } catch (Exception e) {
            error("Error al resgistrar el Evento " + e);
        }
        return null;
    }

    public void limpiar() {
        listboxTipoEvento1.setValue("");
        textNombreEvento.setValue("");
        textAreDescriEvento.setValue("");
        textFiOrganizador.setValue("");
        radioButtonGroup1.setValue(false);
        listboxPais1.setValue("");
        listboxCiudad1.setValue("");
        calendarInicio1.setValue("");
        calendarFinEvento1.setValue("");
        radioButtonGroup1.setValue(false);
        textFieldDuracion.setValue("");
        listboxTiempo1.setValue("");
        textFieldCostoAsociado.setValue("");
        textAreaDetalleCosto.setValue("");
        textFieldAsumeCosto.setValue("");
        textAreaImportanciaItm.setValue("");
        textAreaResultadoObte.setValue("");
    }

    public String buttonCancelar_action() {
        //limpiar();
        tab2.setDisabled(true);
        tab2.setVisible(false);
        tabSet1.setSelected(tab1.getId().toString());
        return null;
    }

    public String buttonModificar_action() {
        tab2.setDisabled(false);
        tab2.setVisible(true);
        tabSet1.setSelected(tab2.getId().toString());
        return null;
    }

    public String buttonVolverLista_action() {
        return "volverListaEventos";
    }

    public String tab2_action() {
        return null;
    }
}

